#pragma once
#include <vector>
#include <string>
#include "Predicate.h"
#include <iostream>
#include <string>

using namespace std;

class Rule {
	public:
		Rule() {}
		Rule(Predicate first) {
			leftArg = first;
		}

		void pushPredicate(Predicate param) {
			rightArgs.push_back(param);
		}
		
		string toString() {
			string temp = "";
			temp += leftArg.toString() + " :- ";

			for (int lcv=0; lcv < rightArgs.size(); lcv++)
			{
				temp += rightArgs[lcv].toString();
				if(lcv != rightArgs.size() - 1)
				{
					temp += ",";
				}
			}

			temp += ".";

			return temp;
		}
	private:
		Predicate leftArg;
		vector<Predicate> rightArgs;
};